package domain

import "time"

type Host struct {
	ID              string    `gorm:"column:id;primaryKey;type:varchar(255);"`
	OS              string    `gorm:"column:os;type:varchar(255);"`
	KernelVersion   string    `gorm:"column:kernel_version;type:varchar(255);"`
	HardArch        string    `gorm:"column:hard_arch;type:varchar(255);"`
	MemTotal        float32   `gorm:"column:mem_total;type:float;"`
	MemUsed         float32   `gorm:"column:mem_used;type:float;"`
	MemFree         float32   `gorm:"column:mem_free;type:float;"`
	MemUsedRate     float32   `gorm:"column:mem_used_rate;type:float;"`
	CPUCores        int       `gorm:"column:cpu_cores"`
	CPUUsedRate     float64   `gorm:"column:cpu_used_rate;type:float;"`
	Hostname        string    `gorm:"column:hostname;type:varchar(255);"`
	CreatedTime     time.Time `gorm:"column:created_time"`
	Net1Name        string    `gorm:"column:net1_name;type:varchar(255);"`
	Net1IP          string    `gorm:"column:net1_ip;type:varchar(255);"`
	Net1Mac         string    `gorm:"column:net1_mac;type:varchar(255);"`
	Net2Name        string    `gorm:"column:net2_name;type:varchar(255);"`
	Net2IP          string    `gorm:"column:net2_ip;type:varchar(255);"`
	Net2Mac         string    `gorm:"column:net2_mac;type:varchar(255);"`
	Disk1Device     string    `gorm:"column:disk1_device;type:varchar(255);"`
	Disk1MountPoint string    `gorm:"column:disk1_mount_point;type:varchar(255);"`
	Disk1Path       string    `gorm:"column:disk1_path;type:varchar(255);"`
	Disk1Size       float64   `gorm:"column:disk1_size;type:float;"`
	Disk1Used       float64   `gorm:"column:disk1_used;type:float;"`
	Disk1Free       float64   `gorm:"column:disk1_free;type:float;"`
	Disk1UsedRate   float64   `gorm:"column:disk1_used_rate;type:float;"`
	Disk2Device     string    `gorm:"column:disk2_device;type:varchar(255);"`
	Disk2MountPoint string    `gorm:"column:disk2_mount_point;type:varchar(255);"`
	Disk2Path       string    `gorm:"column:disk2_path;type:varchar(255);"`
	Disk2Size       float64   `gorm:"column:disk2_size;type:float;"`
	Disk2Used       float64   `gorm:"column:disk2_used;type:float;"`
	Disk2Free       float64   `gorm:"column:disk2_free;type:float;"`
	Disk2UsedRate   float64   `gorm:"column:disk2_used_rate;type:float;"`
	Disk3Device     string    `gorm:"column:disk3_device;type:varchar(255);"`
	Disk3MountPoint string    `gorm:"column:disk3_mount_point;type:varchar(255);"`
	Disk3Path       string    `gorm:"column:disk3_path;type:varchar(255);"`
	Disk3Size       float64   `gorm:"column:disk3_size;type:float;"`
	Disk3Used       float64   `gorm:"column:disk3_used;type:float;"`
	Disk3Free       float64   `gorm:"column:disk3_free;type:float;"`
	Disk3UsedRate   float64   `gorm:"column:disk3_used_rate;type:float;"`
	Disk4Device     string    `gorm:"column:disk4_device;type:varchar(255);"`
	Disk4MountPoint string    `gorm:"column:disk4_mount_point;type:varchar(255);"`
	Disk4Path       string    `gorm:"column:disk4_path;type:varchar(255);"`
	Disk4Size       float64   `gorm:"column:disk4_size;type:float;"`
	Disk4Used       float64   `gorm:"column:disk4_used;type:float;"`
	Disk4Free       float64   `gorm:"column:disk4_free;type:float;"`
	Disk4UsedRate   float64   `gorm:"column:disk4_used_rate;type:float;"`
}

func (*Host) TableName() string {
	return "t_host"
}
